using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Entidades;

namespace SistemaProduccion.GUI
{
    public partial class frmObras : Form
    {
        #region
        private string COD_OBRA_NUEVO = "";
        private dtsObras dtsPpal;
        private ToolTip tt;
        //private controladorObras controlador;
        #endregion

        public frmObras()
        {
            InitializeComponent();
            inicializarObras();
            habilitarModificar(false);
        }

        private void inicializarObras()
        {
            controladorObras.listarObras(ref lstObras);
            dtsPpal = (dtsObras)((dtsObras.ObraDataTable)lstObras.DataSource).DataSet;
            if (lstObras.Items.Count >0)
            {
                lstObras.SelectionMode = SelectionMode.None;
                lstObras.SelectionMode = SelectionMode.One;
                lstObras.SetSelected(0,true);  
            } 
        }

        private void lstObras_SelectedIndexChanged(object sender, EventArgs e)
        {
            string codigo = getCodObra();
            if (codigo.Equals("") || codigo.Equals("System.Data.DataRowView"))
            {
                limpiarTextos();
            }
            else
            {
                DataRow[] filas = dtsPpal.Obra.Select(dtsPpal.Obra.codObraColumn.ColumnName + "='"+codigo+"'");
                
                if (filas.Length > 0)
	            {
                    dtsObras.ObraRow fila = (dtsObras.ObraRow)filas[0];
                    txtDescripcion.Text = fila.descripcion;
                    txtUbicacion.Text = fila.ubicacion;        		 
	            }
    
            }
        }

        private void limpiarTextos()
        {
            txtDescripcion.Clear();
            txtUbicacion.Clear();
        }

        private void habilitarModificar(bool value)
        {
            txtDescripcion.ReadOnly = !value;
            txtUbicacion.ReadOnly = !value;

        }

        private string getCodObra()
        {
            string cod_obra = "";
            //cdo cod obra nuevo es "" , significa ue estoy modificando, sino estoy agregando uno nuevo
            if (COD_OBRA_NUEVO.Equals("") || COD_OBRA_NUEVO.Equals("System.Data.DataRowView"))
            {
                cod_obra = (this.lstObras.SelectedValue == null) ? "" : this.lstObras.SelectedValue.ToString();
                
                //lstObras.se
            }
            else
            {
                cod_obra = "";
            }

            return cod_obra;
        }

        private void btnNueva_Click(object sender, EventArgs e)
        {
            lstObras.SelectionMode = SelectionMode.None;
            limpiarTextos();
            COD_OBRA_NUEVO = "";
            habilitarModificar(true);
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            clsObra Obra = new clsObra(getCodObra(), txtDescripcion.Text, txtUbicacion.Text);
            controladorObras.guardar(Obra);
            inicializarObras();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            lstObras.SelectionMode = SelectionMode.One;            
            habilitarModificar(true);
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            DialogResult rta = MessageBox.Show("Seguro que desea eliminar?","", MessageBoxButtons.YesNo);
            if (rta.Equals(DialogResult.Yes))
            {
                clsObra Obra = new clsObra(getCodObra(), txtDescripcion.Text, txtUbicacion.Text);
                controladorObras.eliminar(Obra);
                inicializarObras();
            }            
        }
    }
}